<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

require_once APPLICATION_PATH . '/models/Single/BaseEntity.php';
require_once APPLICATION_PATH . '/models/Mapper/LocalidadesMapper.php';
require_once APPLICATION_PATH . '/models/DbTable/Localidades.php';

/**
 * Description of LocalidadEntity
 *
 * @author kristian
 */
class Spalm_Model_Single_LocalidadEntity extends Spalm_Model_Single_BaseEntity{
    protected $_nombre;
    protected $_provincia;
    protected $_codigo_postal;

    public function  __construct() {
        $this->setMapper(new Spalm_Model_Mapper_LocalidadesMapper(new Spalm_Model_DbTable_Localidades()));
    }

    public function setNombre($nombre){
        $this->_nombre = $nombre;
    }
    public function getNombre(){
        return $this->_nombre;
    }

    public function setProvincia(Spalm_Model_Single_ProvinciaEntity $provincia){
        $this->_provincia = $provincia;
    }
    public function getProvincia(){
        return $this->_provincia;
    }

    public function setCodigoPostal($codigo){
        $this->_codigo_postal = $codigo;
    }
    public function getCodigoPostal(){
        return $this->_codigo_postal;
    }

    public function isRemovable() {
        $salida = true;

        /*
         * consultas
         */

        if ($salida){
            $clientesModel = new Spalm_Model_Single_ClienteEntity();
            $selectCliente = $clientesModel->getMapper()->getDbTable()->select();
            $selectCliente->where('localidad_id = ?',$this->getPK());

            $clientes = $clientesModel->fetchAll($selectCliente);

            $salida = $salida && (count($clientes) == 0);
        }

        if ($salida){
            $usuariosModel = new Spalm_Model_Single_UsuarioEntity();
            $selectUsuario = $usuariosModel->getMapper()->getDbTable()->select();
            $selectUsuario->where('localidad_id = ?',$this->getPK());

            $usuarios = $usuariosModel->fetchAll($selectUsuario);

            $salida = $salida && (count($usuarios) == 0);
        }
        

        

        /*
         * evaluaciones
         */
        
        

        return $salida;
    }
}
?>
